package cz.schovjan.mte_proj.service;

import java.util.List;

import cz.schovjan.mte_proj.dto.LyricResult;
import cz.schovjan.mte_proj.dto.VideoEntry;

/**
 * Vyhledavac textu, pisni a videi
 * @author schovjan
 */
public interface Searcher {

    public static final int SEARCH_BY_ARTIST_SONG = 0;
    public static final int SEARCH_BY_TEXT = 1;


    /**
     * vrati seznam vyhledanych zaznamu ktere odpovidaji umelci nebo pisni nebo oboji
     * @param artist
     * @param song
     * @return
     * @throws Exception
     */
    public List<LyricResult> byArtistSong(String artist, String song) throws Exception;


    /**
     * vrati seznam skladeb obsahujicich v textu retezec
     * @param text
     * @return
     * @throws Exception
     */
    public List<LyricResult> byTextContain(String text) throws Exception;


    /**
     * dotahne text pisne
     * @param l
     * @throws Exception
     */
    public void loadLyric(LyricResult l) throws Exception;


    /**
     * vraci nalezena videa dle interpreta a nazvu pisne
     * @param l
     * @return
     * @throws Exception
     */
    public List<VideoEntry> video(LyricResult l) throws Exception;
}
